package com.edu.exam.enums.questionbank;

import com.edu.exam.enums.core.BaseEnum;

/**
 * 试题难度等级枚举
 *
 * 管理试题的难度等级分类，包括简单、中等、困难等级
 *
 * @author System
 * @version 1.0.0
 */
public enum QuestionDifficultyLevel implements BaseEnum {

    /**
     * 简单
     */
    EASY("EASY", "简单"),

    /**
     * 中等
     */
    MEDIUM("MEDIUM", "中等"),

    /**
     * 困难
     */
    HARD("HARD", "困难");

    private final String code;
    private final String description;

    QuestionDifficultyLevel(String code, String description) {
        this.code = code;
        this.description = description;
    }

    @Override
    public String getCode() {
        return code;
    }

    @Override
    public String getDescription() {
        return description;
    }

    /**
     * 获取枚举的JSON值（使用code）
     *
     * @return 枚举代码
     */
    public String getJsonValue() {
        return code;
    }

    /**
     * 从代码创建枚举实例
     *
     * @param code 枚举代码
     * @return 对应的枚举实例，如果代码无效则返回MEDIUM
     */
    public static QuestionDifficultyLevel fromCode(String code) {
        if (code == null || code.trim().isEmpty()) {
            return MEDIUM;
        }

        for (QuestionDifficultyLevel level : values()) {
            if (level.getCode().equals(code)) {
                return level;
            }
        }
        return MEDIUM;
    }

    }